/*************************************************************************
 * Read and decode a standard INI file. 
 *************************************************************************/

#ifndef _inifile_h
#define _inifile_h


#define INIFILE_MAX_ROW_STRING_SIZE		2048

typedef enum{
	INI_FILE,
	CONF_FILE
}INIFILE_TYPEOFFILE;

typedef struct{
	char* tag;
	char* value;
}init_param;

typedef struct{
	init_param * params;
	int noofparams;
	char* sectionname;
}init_section;

typedef struct{
	init_section* sections;
	int noofsections;
	INIFILE_TYPEOFFILE type;
} init_root;


init_root* init_readfile(const char*, INIFILE_TYPEOFFILE);
init_root* init_readfileX(const char*, INIFILE_TYPEOFFILE, init_root*);
void init_unreadfile(init_root*);
char* init_getstring(const init_root*, const char*);
char* init_getstring_withsection(const init_root*, const char*, const char*);

#endif
